/* C.FileType: Return file type */

#include "kernel.h"
#include "utils.h"

#define ReadCat	5

int filetype (const char *file)
{
	int type;
	_kernel_osfile_block osfile;

	type = _kernel_osfile(ReadCat, file, &osfile);

	if (type < 0)
		return F_ERROR;

	else if (type == 0)
		return F_NONE;

	else if (type == 2)
		return F_DIR;

	else if ((osfile.load & 0xFFF00000) != 0xFFF00000)
		return F_UNSTAMPED;

	type = (osfile.load >> 8) & 0xFFF;
	return type;
}
